/*
 * Proyecto Manejador de Proyectos
 * @Autor Hector Hurtado
 */
package Mproyectos.entidades;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * Representa una GrupoInvestigacion en el sistema
 */
@Entity
public class GrupoInvestigacion implements Serializable {

    /**
     * Nombre del Grupo de Investigacion
     */
    @Id
    private String nombre;
    /**
     * Descripcion del Grupo de Investigacion de la facultad
     */
    private String descripcion;

    /**
     * Constructor vacio del  Grupo de Investigacion
     */
    public GrupoInvestigacion() {
    }

    /**
     * Nombre del Grupo de Investigacion
     *
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * se ingresa el nombre del Grupo de Investigacion
     *
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Retorna el nombre de la ciudad como representacion del objeto
     *
     * @return Nombre de la ciudad
     */
    @Override
    public String toString() {
        return getNombre();
    }

    /**
     * Devuelve el codigo hash de la clase deacuerdo al nombre de la ciudad
     *
     * @return Codigo hash calculado con el nombre de la ciudad
     */
    @Override
    public int hashCode() {
        int hash = 3;
        hash = 29 * hash + (this.getNombre() != null ? this.getNombre().hashCode() : 0);
        return hash;
    }

    /**
     * Verifica si un objeto es igual a otro. Una ciudad es igual a otra si
     * tiene el mismo nombre
     *
     * @param obj Objeto con el cual se quiere comparar
     * @return true si el objeto es una ciudad y tiene el mismo nombre
     */
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final GrupoInvestigacion other = (GrupoInvestigacion) obj;
        if ((this.getNombre() == null) ? (other.getNombre() != null) : !this.nombre.equals(other.nombre)) {
            return false;
        }
        return true;
    }

    /**
     * @return the descripcion
     */
    public String getDescripcion() {
        return descripcion;
    }

    /**
     * @param descripcion the descripcion to set
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
}
